package hospital.dao;

import java.util.List;
import java.util.Set;

import hospital.model.DocScheduleModel;
import hospital.model.EmpInfoModel;
import hospital.model.PatientInfoModel;
import hospital.model.RecordDetailModel;
import hospital.model.VisitRecordModel;

public interface DoctorDao {
	public boolean insertCreateRecord(VisitRecordModel visitRecord);

	public List<PatientInfoModel> selectGetPatientResult(long userId, String firstname, String lastname);

	public List<RecordDetailModel> selectGetRecordDetailList(long patientId);

	public List<EmpInfoModel> selectGetDocResult(long userId, String firstname, String lastname);

	public List<EmpInfoModel> selectGetStaffResult(long userId, String firstname, String lastname);

	public boolean updateGrantPermission(long patientId, long doctorId, long staffId);

	public List<PatientInfoModel> selectGetAllPatients();

	public List<RecordDetailModel> selectSearchRecord(long patientId, long recordTimeStart, long recordTimeEnd,
			String diagnosis, String drug, String comment);

	public List<DocScheduleModel> selectLookupAppointment();

	public boolean selectCheckPatientExist(long patientId);

	public List<PatientInfoModel> selectGetPatientResultDefault(long userId, String firstname, String lastname);

	public boolean selectCheckDoctorExist(long doctorId);

	public boolean selectCheckStaffExist(long staffId);

	public Set<EmpInfoModel> selectGetGrantedDoc(long patientId);

	public Set<EmpInfoModel> selectGetGrantedStf(long patientId);

	public EmpInfoModel selectGetCurrentDoctor(long doctorId);

	public Set<EmpInfoModel> deleteRemoveDocPermission(long patientId, long doctorId);

	public Set<EmpInfoModel> deleteRemoveStfPermission(long patientId, long staffId);
	
	public String selectCheckPassword();
	
	public boolean updateChangePassword(String password);
}
